package com.qingcheng.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.qingcheng.service.goods.SkuSearchService;
import com.qingcheng.util.WebUtil;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.Map;

/**
 * @ProjectName: qingcheng_parent
 * @ClassName: SearchController
 * @Time: 2019/7/10
 * @Author: zhou24
 * @Description:
 * @Experience:
 */
@Controller
public class SearchController {

    @Reference
    private SkuSearchService skuSearchService;

    @GetMapping("/search")
    public String search(Model model, @RequestParam Map<String,String> searchMap) throws Exception {
       //字符集处理
        searchMap= WebUtil.convertCharsetToUTF8(searchMap);
        if(searchMap.get("pageNo")==null){
            searchMap.put("pageNo","1");
        }

        if (searchMap.get("keywords")==null){
            searchMap.put("keywords","手机");
        }

        //排序参数容错处理
        if(searchMap.get("sort")==null){
            searchMap.put("sort","");
        }
        if(searchMap.get("sortOrder")==null){
            searchMap.put("sortOrder","DESC");
        }
        Map result = skuSearchService.search(searchMap);
        model.addAttribute("result",result);
        for (Object key : result.keySet()) {
            System.out.println(key+":"+result.get(key));
        }
        //url
        StringBuffer url = new StringBuffer("/search.do?");
        for (String key : searchMap.keySet()) {
            url.append("&"+key+"="+searchMap.get(key));
        }
        model.addAttribute("url",url);
        //页码
        int pageNo =Integer.parseInt(searchMap.get("pageNo"))  ;//当前页
        model.addAttribute("pageNo",pageNo);
        Long totalPages = (Long) result.get("totalPages");
        int startPage=1;
        int endPage =totalPages.intValue();
        if (totalPages>5){
            startPage=pageNo-2;
            if (startPage<1){
                startPage=1;
            }
            endPage=startPage+4;
        }
        model.addAttribute("startPage",startPage);
        model.addAttribute("endPage",endPage);

        model.addAttribute("searchMap",searchMap);

        return "search";
        //http://localhost:9102/search.do?keywords=手机
    }

}
